<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Db;
use think\facade\Env;
class Models extends Common
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $res=db('models')->select();
        $this->assign('res',$res);
        return view();
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('add');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        if (request()->isPost()) {
            $data=input('post.');
            $validate=validate('Model');
            if (!$validate->check($data)) {
                $this->error($validate->getError());
            }
            $res=db('models')->insert($data);
            if ($res) {
                $tname=config('database.prefix').$data['table_name'];
                $sql="create table {$tname} (aid int unsigned not null) engine=MYISAM DEFAULT CHARSET=utf8";
                DB::execute($sql);
                $this->success('添加成功','index');
            }
            $this->error('添加失败');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {   
        if (request()->isPost()) {
           $data=input('post.');
           $validate=validate('Model');
            if (!$validate->check($data)) {
                $this->error($validate->getError());
            }
            if ($data['old_name']!=$data['table_name']) {
                $oldname=config('database.prefix').$data['old_name'];
                $newname=config('database.prefix').$data['table_name'];
                $sql=" alter table {$oldname} rename {$newname} ";
                Db::execute($sql);
            }
            unset($data['old_name']);
            $res=db('models')->where('id',$data['id'])->update($data);
            if ($res) {
                
                $this->success('模型修改成功','index');
            }
            $this->error('模型修改失败');
            
        }
        $res=db('models')->find($id);
        $this->assign('res',$res);
       return view();
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
       if (request()->isAjax()) {
        $res=model('Models')->destroy($id);
        if ($res) {
            return json(['code'=>1,'msg'=>'删除成功']);
        }
        return json(['code'=>2,'msg'=>'删除失败']);
       }
    }
    /**
     * 修改状态
     *
     * @param [id] $id 
     * @return void
     */
    public function status($id){
        $cate=db('models')->field('status')->find($id);
        if ($cate['status']==1) {
          $res=db('models')->where('id',$id)->setField('status', 2);
        }else{
         $res= db('models')->where('id',$id)->setField('status', 1);  
        }
        if (!$res) {
           return json(['code'=>2,'msg'=>'状态修改失败']);
        }
        return json(['code'=>1,'msg'=>'状态修改成功']);
    }
}
